#include <stdio.h>
#include <stdlib.h>



void Bublesort(unsigned short a[],int n)
{
	unsigned short i,j,k;
	for(j=0;j<n;j++)  
	{
		for(i=0;i<n-j-1;i++)  
		{
			if(a[i]>a[i+1])  
			{
			    k=a[i];
			    a[i]=a[i+1];
			    a[i+1]=k;
			}
		}
	}
}

int remove_repeat(unsigned short a[], int l)
{
    int i, j, k;
    
    for(i = 0; i < l; i++)
    {
        for(j = i+1; j <l;  )	//对后面每个元素比较，去重。
        {
            if(a[j] == a[i])	//发现重复元素。
            {
                for(k = j+1; k<l; k ++)//依次前移一位。
                    a[k-1] = a[k];
                l--;
            }
			else{
				break;
			}
        }
    }
    
    return l;//返回新的长度值。
}



int main() {
	FILE *fi,*fh;
	int c1,c2;
	unsigned short data[400] ={0};
	int cnt,i;
    fi=fopen("input.txt","rb");
    fh=fopen("output.txt","w+");
	//idx=fopen("idx.txt","w+");
	cnt =0;
	while (1) 
	{
		c1=fgetc(fi);
		if (EOF==c1)
			break;
		if (c1> 0x7f) {
			c2=fgetc(fi);
			if (EOF==c2) 
				break;
			data[cnt]= (c1<<8) | c2;
			cnt++;
			continue;
		}
	}
	Bublesort(data, cnt);
	cnt=remove_repeat(data, cnt);
	for(i=0; i<cnt; i++){
		fputc(data[i]>>8, fh);
		fputc(data[i]&0xff, fh);
	}
    fputs("\r\n =idx= \r\n", fh);
	char buf[20];
	//格式如下 {"白"/*3*/},
	for(i=0; i<cnt; i++){
		sprintf(buf, "{\"%c%c\"/*%02d*/},\r\n",data[i]>>8, data[i]&0xff, i);
		fputs(buf, fh);
	
	}

    return 0;
}





